using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace UserManagementService.DTOs;

/// <summary>
/// 导出用户数据输入DTO
/// </summary>
public class ExportUsersDto
{
    /// <summary>
    /// 用户ID列表，为空则导出所有用户
    /// </summary>
    public List<Guid> UserIds { get; set; } = new List<Guid>();

    /// <summary>
    /// 导出格式
    /// </summary>
    public ExportFormat Format { get; set; } = ExportFormat.Excel;

    /// <summary>
    /// 是否包含密码信息（仅管理员）
    /// </summary>
    public bool IncludePassword { get; set; } = false;

    /// <summary>
    /// 是否包含登录历史
    /// </summary>
    public bool IncludeLoginHistory { get; set; } = false;

    /// <summary>
    /// 是否包含权限信息
    /// </summary>
    public bool IncludePermissions { get; set; } = false;

    /// <summary>
    /// 是否包含组织信息
    /// </summary>
    public bool IncludeOrganizations { get; set; } = false;

    /// <summary>
    /// 用户状态筛选
    /// </summary>
    public List<bool?> IsActiveStatus { get; set; } = new List<bool?>();
}

/// <summary>
/// 导出格式枚举
/// </summary>
public enum ExportFormat
{
    /// <summary>
    /// Excel格式
    /// </summary>
    Excel = 1,

    /// <summary>
    /// CSV格式
    /// </summary>
    Csv = 2,

    /// <summary>
    /// JSON格式
    /// </summary>
    Json = 3
}